#pragma once
#include <windows.h>

#include "Physics\Dynamics\Entity\hkpRigidBody.h"
#include "Physics\Collide\Shape\hkpShape.h"
#include "Physics\Utilities\CharacterControl\StateMachine\hkpCharacterState.h"
#include "Physics\Utilities\CharacterControl\CharacterRigidBody\hkpCharacterRigidBody.h"
#include <Physics/Utilities/CharacterControl/StateMachine/hkpDefaultCharacterStates.h>

#include "..\common\def.h"
#include "..\common\string.h"
#include "..\common\arraylist.hpp"
#include "..\engine\object.h"
#include "..\render\d3d_mesh.h"
#include "..\math\matrix.h"
#include "actor.h"

class EE_EXPORT CFieldActor : public CActor
{
	friend class CPhysics;
private:	

	hkpPhantom* m_pPhantom;
	CObject *m_pParent;
	//hkpCharacterRigidBody* m_rigidBody;
	
	void Simulate();
	CFieldActor(CPhysics* const pPhysics);


public:
	
	~CFieldActor();
	HRESULT Create(const string &filename, CActor::ActorData actorData = CActor::ActorData(),CObject *pParent = NULL);
	HRESULT Create(const string &filename, const Matrix4f &initalTransform, CObject *pParent = NULL);
	void SetCollisionCallback(CObject* pObject);
};
